madNES NES emulator by Roberto Rosario email: skeletor@iname.com homepage: http://members.tripod.com/~r_rosario/madnes.htm What's new ========== -- V.xx BETA 4 9/8/98 * Found out what broke Astyanax and some other games. Use the D key to toggle between modes of operation. Games affected: Akira, Astyanax, Burai fighter. * Removed the tile based engine. 9/6/98 * Snapshot can now be saved using the first 5 letters of the gamename. Use the option snapname from the INI file. snapname = 2 for the format RCPRO001.PCX (Where RCPRO is the game name) snapname = 1 for the format madNE001.PCX (The old way) * Replaced Allegro's timer functions with C's uclock() function. Portability is increased, these changes also prepare the way for autoframeskiping. * Added support for ZIP files. -How it works, ie: 1) madNES smario.nes - looks for a game named smario.nes (Standard way) 1) madNES smario.zip - looks for a game named smario.nes inside smario.zip. (Ideal for one ROM per ZIP file) 2) madNES -zipfile nesgames.zip smario.zip - looks for a game named smario.nes inside nesgames.zip. (Ideal for many ROMs per ZIP file) 9/5/98 * Increased snapshot limit from 99 to 999. Will overwrite snapshots with the old format if present. 9/1/98 * Fixed bugs in mappers 2 & 3 modules (bit masks) Metal gear works again. -- V.xx BETA 3 9/1/98 * Perfect scrolling & splitscreens in Ducktales, Zelda2, Crystalis Yonoid, Little Nemo, Kirby's adventure, Ninja gaiden's cinemas are now perfect, Battle toads scrolls better. Astyanax is the only game this change broke. * Mapper 15 is now 100% 8/31/98 * 640x480 mode centered. 8/29/98 * Zelda's vertical scrolling is starting to work. Zelda's scoreboard no longer flicker. Super mario's scoreboard no longer flickers. Kirby's adv scoreboard now appears. The SNK logo on Crystalis now appears correctly. Little Nemo * Improvements to PPU Friday the 13th's paralax scrolling no longer gets out of sync. Crystalis playfield scrolling is a bit more stable. 8/28/98 * Improved mapper 4,5,9. * Compiled with GCC 2.8.1 * Compiled using Allegro 3.0 + WIP May 30 * Preliminary mapper 5 support. * Added mapper 8 support. * Sprite priorities are now emulated a 100%. Still one bug to kill. * Removed the full screen graphic engine as it was no longer required. * The clear screen PPU flag is now emulated correctly. Final Fantasy 1 now fades in & out correctly. Joust. * Added 32k bank switch support to the mapper 1. KidNiki now works. * Adjusted the sound constants & frequencies. Most games sound better, but a few freqs. are still off. Introducion =========== madNES is an emulator for the Nintendo Entertainment System written entirely in ANSI C. It's compiled using DJGPP, and Allegro is currently used to drive the graphics engine also SEAL is currently used for sound. Although madNES is MS-DOS based, the source code is very modular and rather easy to port. This emulator is freeware, meaning that you don't have to pay anything to own it and that you can distribute it free of charge, as long as it remains unmodified and no games are included with it. Usage ===== From the command line type: madnes [options] options: -frameskip # # of frames to skip. -gameinfo Display games stats when loaded. -gamegenie Enter Game Genie(tm) code (may enter more than one). -resolution # Selects from predefined resolutions. 1: VGA 320x200 2: MODEX 256x240 3: SVGA 640x480 4: VESA 320x240 5: VGA 256x256 w/ scanlines 6: VGA 256x256 -hblank Specifies the number of cpu cycles per scanline. -volume Sets the master volume. -nosound Disables sound emulation. -? Show usage syntax. Or type madNES without specifing a game to go to the front end directly (if the GUI is enabled). Once madNES is running: NES pad 1 --------- Up - Up arrow keys Down - Down arrow keys Left - Left arrow keys Right - Right arrow keys B - Alt A - Ctrl Start - Enter Select - Space NES pad 2 --------- Up - Home Down - End Left - Delete Right - Page Down B - Y A - U Start - I Select - O other --------------- ESC - Toggles between the GUI and the emulator (if the GUI is enabled). Ctrl + X - Exits madNES. Ctrl + S - Switches the graphic engine. Ctrl + R - Resets the emulated game. Ctrl + G - Toggles between Control pad #2 and Lightgun. F2 - Save current game state. F3 - Load game state. F4 - Decrease volume. F5 - Increase volume. F6 - Decrease hblank. F7 - Increase hblank. F8 - Decreases the frame skip. F9 - Increases the frame skip. F11 - Show the frames per second counter. F12 - Saves a screenshot in the PCX or JPEG format (madNExxx.pcx or madNExxx.jpg).